﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SpiceNet.Models.BSIM2p
{
    /// <summary>
    /// A class containing the size-dependent parameters of a BSIM2 mosfet
    /// </summary>
    public class SizeDependParam
    {
        public double Width;
        public double Length;
        public double B2vfb;      /* flat band voltage at given L and W */
        public double B2phi;      /* surface potential at strong inversion */
        public double B2k1;       /* bulk effect coefficient 1             */
        public double B2k2;       /* bulk effect coefficient 2             */
        public double B2eta0;      /* drain induced barrier lowering        */
        public double B2etaB;     /* Vbs dependence of Eta                 */
        public double B2beta0;    /* Beta at Vds = 0 and Vgs = Vth         */
        public double B2beta0B;   /* Vbs dependence of Beta0               */
        public double B2betas0;    /* Beta at Vds=Vdd and Vgs=Vth           */
        public double B2betasB;   /* Vbs dependence of Betas               */
        public double B2beta20;   /* Vds dependence of Beta in tanh term   */
        public double B2beta2B;   /* Vbs dependence of Beta2               */
        public double B2beta2G;   /* Vgs dependence of Beta2               */
        public double B2beta30;   /* Vds dependence of Beta in linear term */
        public double B2beta3B;   /* Vbs dependence of Beta3               */
        public double B2beta3G;   /* Vgs dependence of Beta3               */
        public double B2beta40;   /* Vds dependence of Beta in quadra term */
        public double B2beta4B;   /* Vbs dependence of Beta4               */
        public double B2beta4G;   /* Vgs dependence of Beta4               */
        public double B2ua0;      /* Linear Vgs dependence of Mobility     */
        public double B2uaB;      /* Vbs dependence of Ua                  */
        public double B2ub0;      /* Quadratic Vgs dependence of Mobility  */
        public double B2ubB;      /* Vbs dependence of Ub                  */
        public double B2u10;      /* Drift Velocity Saturation due to Vds  */
        public double B2u1B;      /* Vbs dependence of U1                  */
        public double B2u1D;      /* Vds dependence of U1                  */
        public double B2n0;       /* Subthreshold slope at Vds=0, Vbs=0    */
        public double B2nB;       /* Vbs dependence of n                   */
        public double B2nD;       /* Vds dependence of n                   */
        public double B2vof0;     /* Vth offset at Vds=0, Vbs=0            */
        public double B2vofB;     /* Vbs dependence of Vof                 */
        public double B2vofD;     /* Vds dependence of Vof                 */
        public double B2ai0;      /* Pre-factor in hot-electron effects    */
        public double B2aiB;      /* Vbs dependence of Ai                  */
        public double B2bi0;      /* Exp-factor in hot-electron effects    */
        public double B2biB;      /* Vbs dependence of Bi                  */
        public double B2vghigh;   /* Upper bound of cubic spline function  */
        public double B2vglow;    /* Lower bound of cubic spline function  */
        public double B2GDoverlapCap;/* Gate Drain Overlap Capacitance     */
        public double B2GSoverlapCap;/* Gate Source Overlap Capacitance    */
        public double B2GBoverlapCap;/* Gate Bulk Overlap Capacitance      */
        public double SqrtPhi;
        public double Phis3;
        public double CoxWL;
        public double One_Third_CoxWL;
        public double Two_Third_CoxWL;
        public double Arg;
        public double B2vt0;
    }
}
